The present disclosure relates generally to information handling systems, and more particularly to more efficient flow routing by Software Defined Networking (SDN) information handling systems that route packets included in flows.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems such as, for example, networking devices, sometimes utilize Software Defined Networking (SDN) techniques in order to route network traffic. For example, SDN switches may operate with an SDN controller to define packets flows and route packets that are associated with those packet flows through a network. SDN techniques separate the control plane of the network (used to make decisions about how packets should flow through the network) from the data plane of the network (used to actually route packets through the network), and provide for dynamic, scalable computing and storage, while accelerating application deployment and delivery, and reducing Information Technology (IT) costs.
SDN techniques are often used in the provisioning of real-time services such as, for example, Voice over Internet Protocol (VoIP) and online gaming. For example, many online gaming applications send a relatively large number of User Datagram Protocol (UDP) or Transmission Control Protocol (TCP) packets from the client to the server (and vice versa), which can produce latency in the network. Such latency can be undesirable in online gaming (as well as in VoIP) because it can cause inconsistencies between the status of the virtual world observed by different users of the online gaming application. The size of such packets is typically in the tens of bytes in the client-to-server direction, as only the virtual world actions of the user of the client device are sent to the server, while such packets may be larger in the server-to-client direction, as they include information about the virtual world actions of the other users of other client devices. As such, relatively small sized client-to-server packet traffic flows like those seen online gaming applications (as well as the acknowledgements utilized in TCP communications) may result in the use of a relatively large amount of SDN switch processing bandwidth that is utilized to match packets to packet flows.
For example, the use of SDN techniques on such packet flows involves an SDN switch receiving a packet, accessing a flow table in a Ternary Content-Addressable Memory (TCAM), and determining if the packet header for that packet includes information that matches a flow table entry in the flow table. Conventional flow table entries include at least 12-tuples (e.g., the “Openflow 12-tuples”) that identify an ingress port, a Source Media Access Control (MAC) address, a Destination MAC address, an Ethertype, a Virtual Local Area Network (VLAN) identity, a VLAN priority, a source Internet Protocol (IP) address, a destination IP address, an IP protocol, an IP Type of Service (ToS), a TCP/UDP source port, and a TCP/UDP destination port. Upon receiving the packet, the SDN switch operates to check each entry in the packet header of the packet against the 12-tuples in each flow entry in order to determine whether that packet matches an existing flow. Such conventional SDN techniques can require a relatively significant amount of time and power to perform. For example, recent studies of TCAM power use for a 100k entry TCAM in an SDN switch found a TCAM power consumption of 792,677 nJ for write/insert operations, and 1,807,142 nJ for search/lookup operations.
Accordingly, it would be desirable to provide an improved flow routing system.